package com.dragon.modules.yuegou.model.system;

import com.dragon.modules.yuegou.entity.system.AppVersionEntity;
import com.dragon.modules.yuegou.enums.system.AppVersionPrdType;
import com.dragon.modules.yuegou.enums.system.AppVersionType;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * app版本管理模型类
 * 
 * @author pbuilder generated
 * @date 2019-09-24 19:50:07
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class AppVersion extends AppVersionEntity {

	/**
	 * 构造一个空app版本管理模型对象
	 */
	public AppVersion(){
		super();
	}
	
	/**
	 * 依据实体对象的信息构造一个app版本管理模型对象
	 * 
	 * @param entity 实体对象
	 */
	public AppVersion(AppVersionEntity entity){
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个app版本管理模型对象
	 * 
	 * @param other 其它对象
	 */
	public AppVersion(AppVersion other){
		super(other);
	}


	@Override
	public String getId() {
    	return id;
    }

    /**
	 * 设置
	 * 
	 * @param id 
	 * @return 当前对象
	 */
    public AppVersion id(String id) {
    	this.id = id;
    	return this;
    }

	@Override
	public String getAppId() {
    	return appId;
    }

    /**
	 * 设置对应的appid
	 * 
	 * @param appId 对应的appid
	 * @return 当前对象
	 */
    public AppVersion appId(String appId) {
    	this.appId = appId;
    	return this;
    }

	@Override
	public String getName() {
    	return name;
    }

    /**
	 * 设置版本名称
	 * 
	 * @param name 版本名称
	 * @return 当前对象
	 */
    public AppVersion name(String name) {
    	this.name = name;
    	return this;
    }

	@Override
	public AppVersionType getType() {
    	return type;
    }

    /**
	 * 设置[枚举]版本类型：0-IOS-IOS、1-安卓-ANDROID、2-小程序-APPLETS
	 * 
	 * @param type [枚举]版本类型：0-IOS-IOS、1-安卓-ANDROID、2-小程序-APPLETS
	 * @return 当前对象
	 */
    public AppVersion type(AppVersionType type) {
    	this.type = type;
    	return this;
    }

	@Override
	public AppVersionPrdType getPrdType() {
    	return prdType;
    }

    /**
	 * 设置[枚举]产品类型：0-悦商圈-YSQ、1-悦商惠-YSH、2-悦荷包-WALLET、3-悦商管-YSG
	 * 
	 * @param prdType [枚举]产品类型：0-悦商圈-YSQ、1-悦商惠-YSH、2-悦荷包-WALLET、3-悦商管-YSG
	 * @return 当前对象
	 */
    public AppVersion prdType(AppVersionPrdType prdType) {
    	this.prdType = prdType;
    	return this;
    }

	@Override
	public String getVersion() {
    	return version;
    }

    /**
	 * 设置版本号
	 * 
	 * @param version 版本号
	 * @return 当前对象
	 */
    public AppVersion version(String version) {
    	this.version = version;
    	return this;
    }

	@Override
	public String getUpdatePath() {
    	return updatePath;
    }

    /**
	 * 设置版本下载路径
	 * 
	 * @param updatePath 版本下载路径
	 * @return 当前对象
	 */
    public AppVersion updatePath(String updatePath) {
    	this.updatePath = updatePath;
    	return this;
    }

	@Override
	public Boolean getLastVersion() {
    	return lastVersion;
    }

    /**
	 * 设置是否最新版本：0-否、1-是
	 * 
	 * @param lastVersion 是否最新版本：0-否、1-是
	 * @return 当前对象
	 */
    public AppVersion lastVersion(Boolean lastVersion) {
    	this.lastVersion = lastVersion;
    	return this;
    }

	@Override
	public Boolean getForceUpdate() {
    	return forceUpdate;
    }

    /**
	 * 设置是否强制更新：0-否、1-是
	 * 
	 * @param forceUpdate 是否强制更新：0-否、1-是
	 * @return 当前对象
	 */
    public AppVersion forceUpdate(Boolean forceUpdate) {
    	this.forceUpdate = forceUpdate;
    	return this;
    }

	@Override
	public String getRemarks() {
    	return remarks;
    }

    /**
	 * 设置版本更新说明
	 * 
	 * @param remarks 版本更新说明
	 * @return 当前对象
	 */
    public AppVersion remarks(String remarks) {
    	this.remarks = remarks;
    	return this;
    }

	@Override
	public LocalDateTime getCreatedTime() {
    	return createdTime;
    }

    /**
	 * 设置
	 * 
	 * @param createdTime 
	 * @return 当前对象
	 */
    public AppVersion createdTime(LocalDateTime createdTime) {
    	this.createdTime = createdTime;
    	return this;
    }

	@Override
	public String getCreatedBy() {
    	return createdBy;
    }

    /**
	 * 设置
	 * 
	 * @param createdBy 
	 * @return 当前对象
	 */
    public AppVersion createdBy(String createdBy) {
    	this.createdBy = createdBy;
    	return this;
    }

	@Override
	public LocalDateTime getModifiedTime() {
    	return modifiedTime;
    }

    /**
	 * 设置
	 * 
	 * @param modifiedTime 
	 * @return 当前对象
	 */
    public AppVersion modifiedTime(LocalDateTime modifiedTime) {
    	this.modifiedTime = modifiedTime;
    	return this;
    }

	@Override
	public String getModifiedBy() {
    	return modifiedBy;
    }

    /**
	 * 设置
	 * 
	 * @param modifiedBy 
	 * @return 当前对象
	 */
    public AppVersion modifiedBy(String modifiedBy) {
    	this.modifiedBy = modifiedBy;
    	return this;
    }
}
